#include<stdio.h>
#define maxn 101010
int n,m,len,cnt=1,h[maxn<<1],nx[maxn<<1],to[maxn<<1],va[maxn<<1],begin[maxn],end[maxn];char bit[maxn];
#define addEdge(a,b){len++;nx[len]=h[a];h[a]=len;to[len]=b;len++;nx[len]=h[b];h[b]=len;to[len]=a;}
#define rep(i,b,c) for(i=b;i<=c;i++)
#define dep(i,a,b) for(i=a;i>=b;i--)
#define ll long long
int dfs(int rt,int fa)
{
	int i,j;
	cnt++;
	begin[rt]=cnt-1;
	end[rt]=begin[rt];
	for(i=h[rt];i;i=nx[i]){
		if(to[i]==fa) continue;
		end[rt]=dfs(to[i],rt);
	}
	return end[rt];
}
void add(int loc,int a)
{
	int i,j;
	while(loc<=n){
		va[loc]+=a;
		loc+=loc&(-loc);
	}	
}

ll sum(int loc)
{
	ll ret=0;
	while(loc>0){
		ret+=va[loc];
		loc-=loc&(-loc);
	}
	return ret;
}


int main()
{
	
	int i,j,a,b,c;
	char bu[10];
	scanf("%d",&n);
	rep(i,1,n-1){
		scanf("%d%d",&a,&b);
		addEdge(a,b);	
	}
	dfs(1,0);
	scanf("%d",&m);
	rep(i,1,m){
		scanf("%s %d",&bu,&a);
		if(bu[0]=='Q'){
			printf("%d\n",end[a]-begin[a]+1+sum(end[a])-sum(begin[a]-1));
		}
		else{
			if(bit[a]==0){
				add(begin[a],-1);
				bit[a]=-1;
			}
			else{
				add(begin[a],1);
				bit[a]=0;
			}
		}
	}
	return 0;
	
}
